AAA パターン
AAA は Arrange, Act, Assert の頭文字
Arrange(準備)
テストを書くときに最初に行うことは、テストするデータの準備
システムをテストが実行できる状態にするために
setup 関数やテスト関数の冒頭で行われる
Act(実行)
次に実行する
テストのターゲットとなる関数の呼び出し、アクションの実行、プロシージャの呼び出しなどが該当
Assert(アサート)
最後にアサート
システムが望ましい状態になっていることを確認するために、実行の出力を調べる
code:golang
func TestScore(t *testing.T) {
tests := []struct {
name string
expected int
setup func(*Game)
}{
{
name: "Threw 20 times and knocked down 0 pins.",
expected: 0,
setup: func(g *Game) {
rollMany(g, 20, 0)
},
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
g := NewGame()
// Arrange
tt.setup(g)
// Act
act := g.Score()
// Assert
assert.Equal(t, act, tt.expected)
})
}
}